1. Technical Field
The present invention is directed to an improved computing system involving access to data in a storage system that makes use of logical volume mirroring. More specifically, the present invention is directed to a method and apparatus for improving data reads from a logical volume mirror by providing information regarding the physical devices associated with the mirrors and determining what devices to read data from based on the information regarding the physical devices.
2. Description of Related Art
A mirror is a duplicate on one or more physical storage devices of some or all of the contents of another physical storage device or devices. When a mirror is employed in a computer system, requests to access the mirrored data may be processed by either the original storage device storing the data or by the mirror. By distributing the requests over two or more sets of physical storage devices, the workload of any one physical storage device is diminished.
Data mirroring may be implemented in hardware or software. In hardware mirroring, a specialized storage system, typically a Redundant Array of Independent Disks (RAID) system, will perform the management of the data in terms of keeping track of the read and write requests. That is, the request is transparent to the software running on the computing system.
Software mirroring is the use of the operating system to manage requests down to separate physical disks. This requires software to be aware of the location of the disks in terms of how they are connected to the computing system. Software mirroring is usually performed by a system device driver as it needs to interrupt the operating system to perform request processing.
Usually, hardware mirroring is more efficient than software mirroring. There are some exceptions to this statement. First, since hardware mirroring is usually specific to a disk system, there is usually a data stream bottleneck at the connection point between the computer and the storage system, i.e. all read and write requests must go serially down the physical connection to the hardware storage system. Software mirroring on the other hand, usually has multiple disk drives attached to multiple data bus connections. Thus, data requests can be sent and received in parallel. Second, hardware mirroring ties users to a set of hardware. If the user commits to a hardware mirror, then non-hardware-mirroring-capable disk drives cannot be used for mirroring since hardware based mirroring requires that the mirroring either be enabled or not. Software mirroring allows the use of any disk drive to be used as a software mirror.
However, software mirroring has one major flaw, it must treat all the disk drives in the same manner since it may be used with any type of disk drive. This does not allow software mirroring to take advantage of the specific advantages of the characteristics of different physical devices. Thus, it would be beneficial to have a method and apparatus for performing input/output operations on a mirrored storage system such that the particular characteristics of different physical devices are taken into account in determining with which physical devices to perform the input/output operation.